package eva.savant.business.material.view

import eva.savant.businessobject.mt.Kardex
import eva.savant.businessobject.mt.Material
import eva.savant.businessobject.mt.Almacenero
import eva.savant.businessobject.mt.AlmaceneroAlmacen

import javax.faces.bean.ManagedBean
import javax.faces.bean.SessionScoped
import javax.annotation.PostConstruct

@SessionScoped
@ManagedBean(name = 'IIKardex')
public class IIKardex extends Bean{

  Date dateIni, dateEnd

  def lsAlmacen, almacenId

  def material, XMaterialCod= ''

  @PostConstruct
  public void cleanEntity() {

    XMaterialCod= ''

    almacenId= null

    material= new Material()

    dateIni= dateEnd= new Date()

    lsEntity= new ArrayList<Kardex>()


    def almacenero= get(Almacenero,'usuario.id=?',usuario.id)

    if(almacenero == null) { addErrorMessage 'El usuario no esta registrado como almacenero'; return }


    lsAlmacen= find(AlmaceneroAlmacen,'almacen: almacenero.id=?',almacenero.id)

    if(lsAlmacen?.size() < 1) { addErrorMessage 'El usuario no tiene asignado almacenes' }
  }

  public List findLsEntity() {

    if(dateIni == null || dateEnd == null || material?.id == null) return null

    return find(Kardex,'almacen.id=? and material.id=? and fecha between ? and ? order by id',

                almacenId, material.id, dateIni, toMidnight(dateEnd))
  }

  def XMaterialFind() {

    material= get(Material.class,'rapido=?',toInteger(XMaterialCod))

    if(material == null) material= get(Material, XMaterialCod)

    if(material == null) material= get(Material,'barras=?', XMaterialCod)

    if(material != null) XMaterialCod= material.codigo
  }

  def XMaterialSelect() { XMaterialCod= material.codigo }

  def getXMaterialConverter() { return converterLike(Material) }

  def XMaterialComplete(String value) { return completeLike(Material,'nombre',value) }

}
